const MAX_POINTS: u32 = 100_000;

fn init() {
    let x = 5; //默认是不可变对象
    println!("The value of x is: {}", x);
    // x = 6;
    println!("The value of x is: {}", x);

    let mut y = 5; //mut 可变
    println!("The value of y is: {}", y);
    y = 6;
    println!("The value of y is: {}", y);
}

fn shadow() {
    // mut 与隐藏的另一个区别是，当再次使用 let 时，实际上创建了一个新变量，我们可以改变值的类型，但复用这个名字
    let x = 5;
    let x = x + 1; // 抛弃
    let x = x * 2;

    let spaces = "   "; // 抛弃
    let spaces = spaces.len(); // 同名新值

    // let mut spaces = "   "; //可变
    // spaces = spaces.len(); // 类型变化
}
